Mobile computing devices such as mobile telephones, tablets, and laptop computers have proliferated in recent years. These devices can be equipped with processors, memory, and the capability to communicate through local and wide area networks, including the Internet. These devices can be equipped with operating systems which permit the devices to execute a wide range of computer programs, typically called “apps.” The user of a mobile computing device can download computer programs and other content by direct communication with a server through a mobile telephone network or wireless local area network.
App authors issue updates for apps from time to time. Over the life cycle of a typical app, multiple updates might be issued by the author. One method for updating an application is to obtain, for example, by downloading from a server to the mobile device, a complete copy of the updated application. The outdated version of the application is then replaced with the updated version. Because a complete copy of the updated application is transmitted from a server to the mobile device, the bandwidth costs associated with this transmission are based on the size of the complete copy of the updated application, regardless of the extent of the changes that were made to the application in the updated version as compared to the version that is being replaced.